<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        	// js中的this指向？
			// this指向执行的上下文；简单来说 谁调用指向谁
        /**
         * 1. 全局中指向 window
         * 2. 函数中，声明函数的时候并不知道 this指向谁；调用的时候才有this指向；并且关键是谁调用就指向谁
         * 3. 箭头函数不会改变 this指向  (使用： 请求成功之后接收数据  res=>{})
         * 4. 构造函数内 this指向：实例化的对象  (vue内 this指向实例化)
         *
         * 通常情况下，我们在写代码的时候，先在函数里面： let vm = this
         *
         * */
                //console.log(this);// window
                // function fn(){
                //    console.log(this); // window
                // }
                // // fn()
                // let obj={
                //     name:'2108',
                //     fn(){
                //         console.log(this);  //obj
                //     }
                // }
                // // obj.fn()
                // let f=obj.fn
                // f() // window
                // function fn1(name){
                //     this.name=name
                //     console.log(this);
                // }
                // var a=new fn1('小鸡')
                // console.log(a);  //fn1()
        /**
         * 强制性改变 this指向
         *
         * call  bind  apply
         *
         * .call(this指向的)
         * .bind(this指向的)  还需要再次调用函数
         * .apply(this指向的)
         *
         * 传参数，bind函数调用写参数；call(this,参数1，参数2.。。) ；apply(this,[	参数1，参数2。。。。])
         * **/
    //             let obj={
    //                 name:"2108"
    //             }
    //             let obj1={
    //                 age:6
    //             }
    //             function fn1(a,b){
    //                 console.log(this,a,b);
    //             }
    //             fn1()//window
    //           fn1.bind(obj)(1,2)
    //           fn1.call(obj1,3,2)
    //           fn1.apply(obj,[4,2])
    // </script>
</body>

</html>